home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / ada / pca.ada < prev    next >
Text File  |  1996-01-30  |  893b  |  49 lines

  1. with Text_IO; use Text_IO;
  2. with Buffer_Package; use Buffer_Package;
  3. procedure PCA is
  4.  
  5.   B: Buffer;
  6.  
  7.   task Producer is
  8.     pragma Priority(10);
  9.   end Producer;
  10.   task Consumer1 is
  11.     pragma Priority(7);
  12.   end Consumer1;
  13.   task Consumer2 is
  14.     pragma Priority(7);
  15.   end Consumer2;
  16.  
  17.   task body Producer is
  18.     N: Integer := 0;
  19.   begin
  20.     loop
  21.       N := N + 1;
  22.       Put_Line("Produce  " & Integer'Image(N));
  23.       if N mod 40 = 0 then delay 1.0; end if;
  24.       Append(B, N);
  25.     end loop;
  26.   end Producer;
  27.  
  28.   task body Consumer1 is
  29.     N: Integer;
  30.   begin
  31.     loop
  32.       Take(B, N);
  33.       Put_Line("Consume 1 " & Integer'Image(N));
  34.     end loop;
  35.   end Consumer1;
  36.  
  37.   task body Consumer2 is
  38.     N: Integer;
  39.   begin
  40.     loop
  41.       Take(B, N);
  42.       Put_Line("Consume 2 " & Integer'Image(N));
  43.     end loop;
  44.   end Consumer2;
  45.  
  46. begin
  47.   null;
  48. end PCA;
  49.